import { create } from "zustand";

interface PriceState {
  price: number;
  setPrice: (price: number) => void;
  addPrice: () => void;
  subtractPrice: () => void;
  resetPrice: () => void;
  getPrice: () => number;
}

// 创建一个状态管理器，使用 create 函数，传入一个函数，返回一个对象
/**
 *zustand的set函数会帮我们合并第一层状态，回想一下useStates
 * @param set 用于更新状态
 * @param get 用于获取状态
 * @returns 返回一个对象，对象中的方法可以用于更新状态
 */
export const usePriceStore = create<PriceState>((set, get) => ({
  price: 0, // 初始状态
  setPrice: (price: number) => set({ price }),
  addPrice: () => set((state) => ({ price: state.price + 1 })),
  subtractPrice: () => set((state) => ({ price: state.price - 1 })),
  resetPrice: () => set({ price: 0 }),
  getPrice: () => get().price,
}));
